home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
simcode.arc
/
README
< prev
next >
Wrap
Text File
|
1985-02-14
|
39KB
|
991 lines
SIMTERM Instructions Page: 1
1. Introduction
Feel free to make copies of this program. There is no restriction on the
distribution as long as the copyright notices are left on the source and
that there is no charge for the distribution. This program is made
available to users of IBM-PCs (and compatibles since I really like the
COMPAQ/PLUS). No guarantees are made or implied. If you have any
questions or suggestions, please give me a call and I will try to answer
them. A recent acquisition of an interrupt driven communication driver
from the University of British Columbia Computer Centre has enabled me
to remove the requirement that you have the IBM Async Communications
Support package which included a driver I used to use. This version of
SIMTERM is therefore self-contained and requires no other software to
run. Have fun using it and **HAPPY COMPUTING**.
This floppy contains all the software for the terminal simulator for
the IBM PC. The main function of this program is to provide a
reasonable terminal simulation on the IBM PC of an HP-like terminal to a
UNIX(TM) system. The file `simterm.exe' is the load module and when
invoked, assumes a default of 1200 baud, 1 stop bit, no parity, and flow
control (XON/XOFF). The interrupt level of the communications line is
also set to the highest level to ensure that incoming characters are
processed as soon as they arrive. The only programs that have to be on
the floppy are SIMTERM.EXE, HELP.TXT, and MENUS. If you have a VENTEL or
a Hayes modem, the file BOARDS can be copied over as a starter for a
list of BBSs. The BOARDS file is set up for a VENTEL autodialer. The
dialing strings will have to be changed to conform for the Hayes
standard.
If you have DOS 2.0, put SIMTERM.EXE, HELP.TXT, BOARDS and MENUS in a
subdirectory called \simterm. That way, if you change directories during
a SIMTERM session, by specifying a path for any type of file transfer,
SIMTERM will be able to find its way back to these two important files.
If you don't have DOS 2.0, then just IGNORE the occasional "directory
not found" messages, they're harmless.
2. Command Line Parameters
Optional parameters on the command line will override the defaults as
follows:
`-a' put the simulator into the ADM3a emulation mode for those
systems which don't support TERMCAP.
`-b' Causes SIMTERM to assume you are using a monochrome display,
even though you may not really have one.
`-B' will cause the transmit and receive buffers to be cleared when
a BREAK (End key) is sent. This is mainly for high baud rate
lines where there is still junk in the buffers that you don't
want to see.
`-cn' specifies which COMx device you want to use. The default is 1
(use COM1).
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 2
`-d' Enter direct connect mode. SIMTERM won't wait for carrier
detect. Use this option if you're connected directly to the
remote, with no modem. You can also use this option when
SIMTERM seems to hang at startup, with the "Establish
communications link" message. This may be be case with Hayes
modems if you don't have them optioned to raise the carrier
detect.
`-D' When this flag is used, SIMTERM will ignore DEL (127 Ascii)
characters, and the character immediately following the DEL.
We use it because we have a noisy line.
`-e' specifies that the EPSON printer does not have the GRAFTRAX
option. Therefore when using `ibmpr' to route stuff to the
printer, the code will simulate underlining, subscripts, and
superscripts. Default is an EPSON with GRAFTRAX.
`-E' Set the EMACS mode for the cursor control keys so that when
EMACS is entered, the UP(^P), DOWN(^N), LEFT(^B), and
RIGHT(^F) characters are sent.
`-g' Causes SIMTERM to assume you are using a graphics display,
even though you may not really have one.
`-h' SIMTERM will operate in the `half-duplex' mode; i.e., it will
echo the characters the user types since the host system does
not.
`-in' specifies the IRQ (interrupt request level) to be used.
Default is 4, but some boards (like the Quadram) use IRQ3 for
COM2, so in this case SIMTERM would have to be invoked with
the parameters `-c2 -i3' to set it up correctly.
`-I' This will set the async port as the highest priority if
specified as `-I'. If specified as `-In', the priority levels
will not be affected. Default is to set the comm line as the
highest priority to avoid `Data Overruns'.
`-m' Tells SIMTERM that you have a Hayes modem instead of the
default VenTel modem. This will enable SIMTERM to use the
directory dialing features (Alt-V)
`-M' Redefines the cursor control keys compatible with a set of
UNIX-like utilities on a PR1ME computer at UofVa.
`-nxxxx' if you have a Ventel or Hayes modem, this option will
automatically dial the number when the simulator is started.
`-o' turns off the error messages caused by communications line;
e.g., framing error and invalid parity.
`-px' specifies the parity where `n'-none, `o'-odd, `e'-even,
`m'-mark, and `s'-space.
`-PFfil' Use file "file" as a script source file (see SCRIPTS below)
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 3
`-PDscr' Execute script "scr" upon start-up (see SCRIPTS below)
`-r' this causes SIMTERM to wait for the horizontal retrace when
writing to the screen. If you notice `sparkles' on your
graphics monitor, invoke SIMTERM with this option and it
should clear up.
`-snnnn' specifies `nnnn' as the baud rate (e.g., -s300).
`-Sn' specifies the number of stop bits (1 or 2)
`-vxxxx' specifies the file (xxxx) to be used when the Alt-V options is
invoked to dial BBS. The full path name of the file should be
specified.
`-wn' set the word length to `n'. Default is 8 (7 data + 1
parity).
`-xn' this option will turn off the XON/XOFF flow control. The
program will send an XOFF when the receive buffer is almost
full and then an XON when it has emptied out. It will also
recognize an XOFF from the host to stop transmitting and then
and XON to start again.
`-kfilename' will read in the file `filename' to initialize the
function keys. The file is of the form
n=string of chars
where 0<=n<=9
example
0=who^V
1=who|wc^V
If the string is terminated with a `^V' (chr(174) -- obtained by
holding down the `Alt' key and typing 174 on the key pad), a `carriage
return' will be appended.
For example:
If you want to run at 9600 baud, even parity, without waiting for
carrier detect
simterm -s9600 -pe -d
If you want to use COM2 (and it requires IRQ3) at 300 baud and run
script "xyzzy" from file "scr2"
simterm -s300 -c2 -i3 -PFscr2 -PDxyzzy
If you are using a Hayes modem and want a number dialed when SIMTERM is
started, use the following command line:
simterm -m -d -n12145551212
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 4
3. Program Functions (Unix specifics)
Once loaded, the program will use all available memory above the module
for save space for paging through previous output. I have 256K on my
system and this provides about 20 pages (~500 lines) of saved text. The
TERMCAP entry for the terminal is in the file `termcap.ibm'. This should
either be added to your termcap library or the `shell' variable TERMCAP
should be set to it before trying to use any package that requires
cursor addressing. The TERMCAP entry makes use of the fact that `vi'
(and `curses') will use a special sequence to enter and leave the
control mode. The simulator uses these sequences to redefine the cursor
control keys so that can be used in that mode; e.g., in `vi' the "up
arrow" will send in a "k", while the "PgDn" will send in a "^D" to
scroll the display down, etc. For those of you who are running on UNIX
systems that use "terminfo", there is a file "terminfo.ibm" which has
the appropriate definitions.
Output to the printer can be initiated under program control with a
filter similar to `hp' which is used for HP terminals. The source file
for `ibmpr' (which is the filter that use on UNIX) is on the floppy. You
should compile this UNIX and then use for controlling output to the
printer. A typical use of this filter is:
nroff -T37 file | ibmpr -p
The `-p' option says to route the output to the EPSON printer. The `-i'
option will cause underlined text to come out in italics. The `-c'
option is used to invoke the compressed mode (132 characters/line).
If those escape sequences are output, they will be displayed
appropriately on the CRT and output to the printer correctly.
4. User Defined Function Keys
There are 10 user definable functions keys that will send a character
sequence of up to 30 characters. To display the current contents of the
keys, hold the `Alt' key down and type `='. To change the contents, hold
the `Alt' key and type `-' and follow directions. To invoke the
functions keys, hold down the `Alt' key and type the corresponding digit
(e.g., `Alt 3'). A user can define a file with the contents of the keys
and cause it to be read in with the `-k' option on the command line.
5. Upload/Download (Unix Specific)
This is used to transfer `text' files (ones that only contain printable
ASCII and tabs) between the PC and the host. To remember which way the
data flow, just remember that the IBM PC looks `up' to UNIX, while UNIX
looks `down' on the PC. To move files between the PC and UNIX, hit
`Cntl-PgUp' to transfer PC->UNIX. Answer the prompts. Hit `Ctrl-PgDn' to
move from UNIX- >PC. As the transfer is taking place, a message will
indicate the # of bytes transferred. When going UNIX->PC, there will be
more bytes on the PC disk than on UNIX because of added `end-of-line'
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 5
and `end-of-text' bytes. This can only be used to transfer TEXT files.
6. Upload/Download (Straight ASCII & XMODEM)
The program can be used to connect to BBSs and any other systems that
support async devices. To download a file to the PC, go through the
normal dialog on the BBS and then when it is waiting for you to hit
return to start the transfer, press Alt-C to open the `copy' file that
will receive the data. You will be put back to the original screen where
you can hit return. At the end of the data transfer, hit Alt-C to close
the copy file.
To upload a file from the PC to a BBS, again go through the dialog to
setup the transfer and when the BBS is ready, press Alt-D to specify the
data file. This will then `dump' the file to the comm line. At then end
of the transfer, you may have to type in a control sequence to indicate
that you are done. This option will request a `delay' between characters
so that you do not overrun the receiving system. Use `0' for no delay; a
value of `1' is probably sufficient for most systems that can not handle
the normal baud rate. Experiment.
SIMTERM supports the XMODEM protocol for data transfer from a BBS. To
invoke this option, hit Alt-R to receive with XMODEM at the point that
the sender is ready. You will be prompted for the file to receive into
and then the PC will initiate the transfer of data. Transmitting with
XMODEM is invoked with Alt-T and prompts will follow.
7. Script files
Script files are used to allow SIMTERM to do mindless interactive login
and other such sequences. A Scriptfile can be created by your favorite
word processor and SIMTERM will compile it for you, and save the
compiled version so you don't have to re-compile at each run. Script
files read much like English, so they are both easy to understand and
create.
Script Commands Available
Each of the following commands can appear in a script file. Note that
each separate command must be separated by a space, tab or newline. The
compiler ignores extra white-space, so you can have indenting, multiple
commands per line, or whatever you want. Syntax notes: "str" in the
following denotes a string constant delimited by quotes. A string can
have multiple words. To get a quote character into a constant, write it
as \". To get a backslash, write it as \\. Although one-word strings
need not have quotes, they should, so that they are not confused with
keywords (commands). Non-quoted strings generate warnings from the
compiler.
name "str" --- defines an entry point for the script that you can use
to identify this part. I.e, if a "name whuxlb" appears in the
file, then you can start running the script by using the name
"whuxlb". (See "running scripts" below) If you choose "whuxlb"
from the pop-up menu later, the script will start executing at
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 6
the statement immediately following the "name" statement.
send "str" --- sends the string to the remote computer, with a carriage
return tacked onto the end. Some escapes can be placed into
the string, as follows: an "\1" causes a one second pause when
it is encountered. "\m" sends a carriage return. "\j" sends a
line-feed. "\c" suppresses the carriage return that is
normally tacked onto the end of a string. "\B" will cause a
`break' to be sent on the comm line. "\onnn" will cause the
octal equivalent of `nnn' to be sent; e.g., to send a `bell'
(Ctrl-G), use \o007. Remember, though, you need to type TWO
backspaces to get one, so these sequences should appear as
\\1,\\m, etc in your file.
dial "str" --- dials the string on a VenTel dialer. Obviously, if you
don't have a ventel, don't use this command (Fake it with
"send"). For example, to dial "3395" on a Hayes, put a line
like "send ATDT3395" in your file.
say "str" --- outputs "str" onto the screen, so that you can put tracer
statements in the script.
goto "str" --- branches to str. labels to be branched to must be
followed by a colon. I.e. early in the script you have a line
"label:" all by itself. Later, you can call "goto label" (no
colon) to branch back up to the earlier statement
gosub "str" --- like goto, but when a "return" statement is encountered
later, the program branches BACK to the statement that follows
the gosub. Gosubs may be nested.
return --- returns from a "gosub" statement
input "str" --- Prompts the user with "str", reads one line, and sends
it to the remote computer.
settime "str" --- sets the timeout value to "str" seconds. Default is
fifteen.
openlog "str" --- this will open the file "str" and log all data
received at the terminal to the file in the same manner as if
Alt-C had been pressed.
closelog --- closes the log file opened by `openlog'
toggle_tr --- toggles the `data terminal ready' lead; this effectively
hangs up the phone and breaks the connection.
quit --- execution is returned to SIMTERM. There is an understood
"quit" at the end of file
The Logical Operators (IF/CASE)
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 7
Besides the COMMANDS, the script compiler recognizes two logical
operators, the if/else statement and the case.
IF SYNTAX
if "str" stmnt1 else stmnt OR if "str" {
stmnt
stmnt
OR .
.
if "str" stmnt1 (no ELSE) } else stmnt
OR } else {
stmnt
.
}
When encountered, the program will scan the output from the remote
computer until either it finds "str" or it times out. If it finds "str",
stmnt1 is executed, if it times out, stmnt2 is executed. Execution then
drops down to the next statement, unless the stmnt1 or stmnt2 contained
a goto or gosub or quit.
stmnt1 or stmnt2 may be either single commands from above, or multiple
commands delimited by { and } (note white space around the brackets. If
the else following if the is missing, then execution falls to the next
statement. Note that ifs may be nested. For example
if "str" dial "4244" else if "str2" dial "4324"
Be aware, however, that input is only scanned once, so if "str2" appears
before "str" in the preceeding example, both tests will fail!!
CASE SYNTAX
The case statement is like multiple simultaneous IFs. It allows you to
set up a few strings to be searched for SIMULTANEOUSLY, with an action
specified to be executed if and when one of the strings is found. Syntax
is
case
str1: action
str2: action
.
.
otherwise action
caseend
Action can be either a single statement (say, send, dial, or even an if,
or another case.) or multiple statements surrounded by { and } (like the
if clause.). For example, if you have
case
eric: dial "eric's #"
holtman: dial "another #"
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 8
caseend
and the input is "djsfhj gfjg eric holtman" then "eric's #" will be
dialed and the case will quit. Note that "holtman" is not matched since
a case statement executes as soon as any of the strings is found.
Script Examples
Call number 3395, wait for "login" prompt. If I get it, gosub to a login
procedure. If I don't then say something, then quit. The login
subroutine will send my id, then prompt for my password, send it, then
return.
name example
dial 3395
if "login" gosub "subr" else {
say "3395 didn't answer"
quit
}
quit
subr:
send "id3434"
input "Your password, sire? "
return
Note that after the "return" the next statement to be executed will be
"quit".
Compiling Scripts
To use the example above, copy it out to a file called, for example,
"prog". Then invoke SIMTERM with a -PFprog flag, like so: "simterm -
PFprog". This tells SIMTERM that you wish to use scripts from the file
"prog". If no -PF flag appears, SIMTERM will read the file "scripts"
which is where you may want to keep compiled scripts. After SIMTERM gets
running, type an Alt-L. This informs SIMTERM that you wish to use a
script. It will examine the file "prog" and determine that it needs to
be compiled. Tell SIMTERM what file you want to put the compiled stuff
in, then sit back and watch for error messages. After it compiles, hit
return and proceed to the next step. Remember the file name you used for
the compiled scripts, and use it next time you run SIMTERM, so that you
don't have to recompile everything again.
Using a script
After you type Alt-L, or after the compile is finished, a menu of all
"name" strings will pop up. If you're still using the example, only one
name ("example") will be there. Using the up and down arrows, make your
choice, then hit the space bar. SIMTERM will then execute your script
starting at that named point.
To execute a script from startup, use the -PD flag. For example, to run
script "example" from the file "prog.scr", type
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 9
simterm -PFprog.scr -PDexample
8. Functions Available from the Keyboard
All these functions can be accessed from the keyboard by typing the
appropriate character. If you forget the commands, Alt-H will bring up a
menu for you. Just follow the menu selection process until you find the
desired function. Note that the menu will tell you which key to use to
activate that function in the future. I.e., the menu has Alt-L next to
the script choice to remind you that you can use Alt-L instead of the
menus to activate the script functions.
F1 Will `toggle' the display so that usually non-displayed
control characters are displayed in reverse video using the
upper case letter that they are equivalent to.
F2 Will `print' the line that the cursor is positioned at.
F3 Send a BREAK
F4 Will ask for the directory that you wish to list and then
display the files.
F8 Freezes the display above the cursor. Handy to save some data
on the upper portion so you can see it as you do other
commands. To `unfreeze', move the cursor to the top of the
screen and hit F8.
F9 turns on the row/column display at the bottom of the screen
so that you know where the cursor is currently positioned.
F10 Toggles XON/XOFF. A convenient way of stopping/restarting the
output to the CRT when connected to a system that honors the
XON/XOFF protocol for flow control.
Alt-F1 Will terminate SIMTERM, but leave the DTR line high so OR
that you can restart SIMTERM and pickup where you left Alt-
255 off.
Alt-F2 Terminate SIMTERM, and drop DTR so that the modem will hang
up.
Alt-F3 Toggles the DTR (data terminal ready) lead on the
communications line. This is used to drop the carrier at the
modem so that you can redial.
Alt-F4 Toggles the graphics-mode. This will display characters with
their parity bits so that the `graphics' characters of the PC
(>127) are should. This is used on some of the BBSs.
Alt-F5 Clears line 25 if it becomes cluttered.
Alt-F6 Display various mode settings on line 25.
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 10
Alt-F7 Resets the communications software. In some instances an
interrupt might be missed and leave the system in a state
where it is expecting data that will not be sent. If you
suspect this, try an Alt-F7 before rebooting the software to
see if it breaks you out of the situation.
Alt-C Puts SIMTERM in a `capture' mode so that all input a received
over the communication line is logged to a disk file. Handy
for picking up ASCII text from a system that does not support
XMODEM. It will prompt you for a file name.
Alt-D Will `dump' a ASCII file on the PC to the comm line. This is
a way of `uploading' to a system that does not support XMODEM.
You can also specify a delay to prevent overruns.
Alt-E Toggles the `vi' mode. Handy when you exit SIMTERM and then
come back into it with UNIX still in `vi'. The mode should be
TRUE to have the cursor keys work for `vi'.
Alt-F Enter the `local' line editting mode. This allows you to make
corrections to a line and then reenter it. Use the cursor
control keys to move to the line, `Ins' and `Del' to fixup the
line and then hit return to reenter the line and leave the
line edit mode.
Alt-H Display a `help' menu listing the defined function keys.
Alt-L Invoke the `script' processor
Alt-R Receive a file using the XMODEM protocol.
Alt-T Send a file using the XMODEM protocol.
Alt-V Will display a menu that is used with the `auto-dial'
capability of the Ventel. Once in this menu, select the
desired feature.
Alt-= Display the user defined function keys
Alt-- Change a user defined function key
Home Goto top of file in "vi" (unix specific)
Ins Send the current line to remote (similar to the ENTER key on
an HP-2621) OR if in "vi" toggle insert mode.
Del Clear display from cursor to bottom OR if in "vi" delete a
character
Arrows Move through screen memory in the specified direction
PgUp Back up one page through memory
PgDn Go down one page in memory
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 11
Cntr+ Toggle output to printer
PrtSc
Ctrl+ Download (Unix ---> IBM)
PgDn
Ctrl+ Upload (IBM ---> Unix)
PgUp
9. Remote Control of SIMTERM
Certain sequences of characters, when received over the communications
line, will cause SIMTERM to execute certain functions, like clearing the
screen, moving characters, turning the printer on and off. In the
following descriptions ESC is Escape (ASCII 27), and Ctrl-X denotes the
character generated by holding down Ctrl and typing X. I.e. Ctrl-A is
ASCII 1. Note: in the descriptions "ESC H F" for example means ESCAPE,
capital H, capital F, with NO SPACES.
ESC A -- move the cursor up one line
ESC B -- move the cursor down one line
ESC C -- move the cursor right one space
ESC D -- move the cursor left one space
ESC d x -- remote XMODEM download of a file. This sequence is followed
the file name which is terminated with a ^Z (chr(26)).
ESC E -- take SIMTERM out of INSERT mode
ESC F -- remotely program a function key. After the F, send a number
from 1 to 9 to indicate which key to program, or a 0 to
program key 10. Everything following the numeral, up to, but
not including a terminating Ctrl-Z is then stored in that
function key. (See User Function Keys, above)
ESC H -- moves cursor to top left of screen (HOME)
ESC K -- clears the rest of the line, from cursor position over
ESC J -- clears display from cursor to end of line, and all
lines below the cursor
ESC L -- inserts a line above the cursor by rolling bottom lines
down. Bottom line of text is lost.
ESC M -- current line is deleted, lower lines scrolled up to close
the gap
ESC P 1 -- turn on printer (Like Ctrl-PrtSc). Everything
that now appears onscreen will be copied to the printer
ESC P 2 -- like P 1, but printer is put in COMPRESSED PRINT MODE.
ESC P E -- like P 1, but printer is put in EMPHASIZED PRINT MODE.
ESC P i -- doesn't turn printer on, just sets ITALICS mode. So, to
print in ITALICS, first turn on printer (ESC P 1), then have
the remote computer send this
ESC P P -- turn on printer, and set into PROPORTIONAL print mode.
ESC P 0 -- turn off printer. Screen is no longer copied to
printer
ESC Q -- Enter INSERT mode. All subsequent characters will be
inserted before the cursor on this line
ESC R -- Deletes the character at current cursor position.
ESC T A -- Cause SIMTERM to begin ADM3A simulation
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 12
ESC T a -- Cause SIMTERM to end ADM3A simulation
ESC T R -- Cause SIMTERM to set up to play ROGUE, so that arrow keys
work.
ESC T r -- Cause SIMTERM to end rogue playing set up
ESC u x -- remote XMODEM upload of a file. This sequence is followed
by the file name which is terminated by ^Z (chr(26)).
ESC V S -- Cause SIMTERM to set up for vi, so that arrows, Ins, Del,
PgUp and PgDn do reasonable things in this Unix text editor
ESC V s -- End Vi mode
ESC [ x c -- causes character 'c' to be printed x number of times,
i.e. to print 27 B's, send ESC [ ESC B, since ESC has an ASCII
value of 27.
ESC & d @ -- set the screen (and printer) back to NORMAL mode.
ESC & d B -- set screen attribute to a value that equals BOLD on the
printer (Actual screen color varies from monochrome to
graphics monitor.) On the monochrome, this is REVERSE VIDEO,
and on the printer, it is EMPHASIZED.
ESC & d D -- set attribute to correspond to UNDERLINE on both the
printer and display.
ESC & d H -- set attribute to be SUPERSCRIPT on the printer and INTENSE
mode on the display.
ESC & d L -- set the attribute to be SUBSCRIPT on the printer and
INTENSE UNDERLINED on the display.
ESC = y x -- move cursor to position y,x: where y and x are the ASCII
characters which equal the desired position plus 32. I.e. to
move to position 3,3 send ESC = # #, since the ASCII value of
# (35) minus 32 is 3
ESC ^ -- request ID. SIMTERM will send back the string "IBM PC"
terminated by a newline. This is handy for inclusion in your
`.profile' to set your terminal type. By having
echo 'terminal type?\033^\c'
read type
in the file you can determine if SIMTERM is acting as the
terminal.
There are probably other undocumented `escape' sequences. To find out
what they might be, read the code in ESCPAR.PAS.
10. XMODEM Under UNIX
When using XMODEM with a UNIX system, the programs `xrecv.c' and
`xtrans.c' should be uploaded and compiled on the host. These programs
are setup for the System V release of UNIX and may need rework if used
on other systems (e.g., Berkeley). To send a file from the PC->UNIX,
type `xrecv filename' on UNIX and when the prompt comes up to start
transmission, hit Alt-T and follow the instructions.
To send a file from UNIX->PC, type `xtrans filename' on UNIX and when
the prompt comes up to set up the receive, hit Alt-R and follow the
instructions.
If you are sending ASCII Text files, invoke the `xrecv'/`xtrans' with
the `-t' argument so that conversion is done between the DOS and UNIX
conventions. The XMODEM protocol using the `-t' option is the safest way
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 13
to transfer text files between systems since checks are made for
successful transmission and any errors introduced by noisy lines will be
filtered out.
MULTIPLE REMOTE TRANSFERS OF FILES
As an optional feature, there is a remote (-r) option that will cause
the upload/download to be invoked automatically on the PC end. For
example, if you want to upload the file `\tmp\xyz' on the PC to the file
`tempxx' on UNIX, the following would be issued;
xrecv -r tempxx /tmp/xyz
Notice that `/' instead of `\' is used as the file name separator for
the PC file name. The command (xrecv/xtrans) will translate the `/' to
`\'. If you really want to use `\', then put in two of them, due to the
way the SHELL processes parameters. This feature is useful for
transferring a large number of file automatically. A SHELL script can be
created with xrecv/xtrans commands to transfer a large number of files.
This transfer will take place automatically.
Note: if the `-d' option is given to either program, the
following will occur. xrecv leaves a running commentary on the
connection status in "xr.err", and xtrans leaves a corresponding file
called "xt.err". They are used for debugging purposes.
11. Using SIMTERM with Other Modems
SIMTERM has been tailored to work with the VENTEL or Hayes modem. If you
are using it with another modem then make sure that the modem is
optioned to present the `modem ready' signal. If you want to be able to
`dial' the phone number from the keyboard, you will also have to option
it to present the `carrier detect' signal. SIMTERM will not get past its
initialization code unless it see both the carrier detect and the modem
ready signals.
If you are using an acoustic coupler or a 212 `dial up', then when the
message `establish communications' appears, dial up the computer and
enable the `data' (e.g., hit the DATA button on the 212 or put the
receiver in the coupler).
If you are using any modem (or are directly connected), and SIMTERM
seems to hang right after the "Establish communications link" message,
it probably means that your modem (or local connection) is not
outputting the correct RS-232 signals for SIMTERM. If the equipment's
not yours, or you don't understand how to fix the problem, or you're
just too lazy to bother, try invoking SIMTERM with the -d flag. I.e. say
"simterm -d" instead of just "simterm". This will keep SIMTERM from
looking at the state of your modem, and your problem will disappear. If
it still doesn't work, you can always give us a call.
12. Compiling the Simulator
If you look at the link control file `simterm.lnk' you will see the
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 14
programs that have to be compiled or assembled. You must use the MACRO
assembler (masm). The file `struct.mac' has some macros for structured
assembly code which makes it easier to write. The file `mactest.asm' has
some examples of the use of the structured macros. The `relations'
between variable or constants are the same as the conditional jumps
with the `j' removed. `long' can be appended to the macro to cause a
long jump to be generated.
`com.asm' is the interface to the Async Comm line. The file `comm.inc'
has the entry points defined. `xxgraph.asm' has functions for cursor
control and such from PASCAL programs. The file `graph.inc' has the
entry points defined.
`arglist.obj' and `arglist.inc' provide `argv' and `argc' for the
parameters to the PASCAL program. See `mainsim.pas' for examples of
their use. Most of the program will be self-explanatory (hopefully). Any
questions, give me a call.
If you want to run SIMTERM on a PC with 128K, you will have to have
access to the compiler and macro assembler. Instead of re-compiling and
linking the programs in simterm.lnk, use "smterm.lnk". This will build a
SIMTERM without VenTel features and without Login Scripts, but it also
knocks about 50K off the `.exe' file.
13. Funny Error Conditions
Sometimes SIMTERM will appear to lockup and not accept any input from
the keyboard (you will hear the bell indicating that the input buffer
is full). This is usually caused by an incomplete ESCAPE sequence that
has been sent to SIMTERM and it is waiting for the rest of the
characters, which will probably never come from the computer. To `break
out' of this condition, depress at the same time the `Ctrl', `Shift',
and `Alt' keys on the left side of the keyboard. This will cause SIMTERM
to terminate its `wait state' and continue. This sometimes happens after
dialing into a BBS or other system since you might get some noise of the
line.
Also the transmitter may have missed an interrupt, you what you are
typing is not sent. If you suspect this, hit Alt-F7.
If SIMTERM gets into a funny condition that you can not get it out of,
then terminate it with `Alt-F1' and then reinvoke it. This procedure
will leave the PC attached to the system and you can pick up where you
left off.
There have been problems on some systems that use PROKEY, NEWKEY, or
other software that interprete the keyboard. If SIMTERM is locking up on
you and you have a program like this loaded, reboot the system without
it and try it. Whatever those programs are doing, they are not very
friendly to SIMTERM.
Jim Holtman Eric Holtman
35 Dogwood Trail Watson Dorm, Room 142
Randolph, N. J. 07869 Station #2
(201)-361-3395 Charlottesville, VA 22904-0029
Copyright @ 1982,1984 Jim & Eric Holtman
SIMTERM Instructions Page: 15
Net Address: ...!harpo!whuxlb!jph ...!harpo!whuxle!eric
If you add any interesting new features to the program, please keep me
informed.
I have several other public domain programs that I will be willing to
trade for ones that I don't have. Drop me a note (or a floppy disk) with
what you have and we can setup a trade. Changes and improvements are
continually being added to the program and if you are interested in what
the changes are, just drop me a note (or a floppy) for the latest
information.
Copyright @ 1982,1984 Jim & Eric Holtman